<?php

require 'vendor/autoload.php';  // Подключение автозагрузчика Composer

use Goutte\Client;
use Symfony\Component\HttpClient\HttpClient;

// Создание клиента 
$client = new Client(HttpClient::create());

// Переход на страницу входа
$crawler = $client->request('GET', 'https://gkh-altai22.ru/moodle/login/index.php');
echo "Перешли на страницу входа\n";

// Сохранение HTML страницы входа для отладки
file_put_contents('login_page.html', $crawler->html());
echo "Сохранена страница входа в login_page.html\n";

// Проверка наличия формы входа
if ($crawler->filter('form')->count() > 0) {
    echo "Найдена форма входа\n";
    
    // Найти все поля формы и вывести их имена для отладки
    $crawler->filter('input')->each(function ($node) {
        echo "Поле: " . $node->attr('name') . "\n";
    });
    
    // Аутентификация
    $form = $crawler->selectButton('Вход')->form();
    
    
    $crawler = $client->submit($form, [
        'username' => 'medvedeva_yu', 
        'password' => 'Yullya29!'
    ]);
    echo "Произвели аутентификацию\n";
} else {
    echo "Форма входа не найдена\n";
    exit;
}

// Сохранение HTML страницы после аутентификации для отладки
file_put_contents('after_login_page.html', $crawler->html());
echo "Сохранена страница после аутентификации в after_login_page.html\n";

// Переход на страницу с таблицей
$crawler = $client->request('GET', 'https://gkh-altai22.ru/moodle/mod/quiz/report.php?id=263&mode=overview');
echo "Перешли на страницу с таблицей\n";

// Сохранение HTML страницы с таблицей для отладки
file_put_contents('table_page.html', $crawler->html());
echo "Сохранена страница с таблицей в table_page.html\n";

// Парсинг таблицы
$crawler->filter('table.generaltable tr')->each(function ($row) {
    $rowData = [];
    $row->filter('td')->each(function ($cell) use (&$rowData) {
        $rowData[] = $cell->text();
    });
    
    // Вывод данных строки
    if (!empty($rowData)) {
        echo implode("\t", $rowData) . "\n";
    }
});
